#include <gflags/gflags.h>
#include <iostream>
#include "../../../common/rabbitmq.hpp"

DEFINE_string(user, "root", "rabbitmq访问用户名");
DEFINE_string(password, "123456", "rabbitmq访问密码");
DEFINE_string(host, "127.0.0.1:5672", "rabbitmq服务器地址信息 host:port");

DEFINE_bool(run_mode, false, "程序的运行模式，false-调试； true-发布；");
DEFINE_string(log_file, "", "发布模式下，用于指定日志的输出文件");
DEFINE_int32(log_level, 0, "发布模式下，用于指定日志输出等级");

int main(int argc, char *argv[])
{
    google::ParseCommandLineFlags(&argc, &argv, true);
    initLogger(FLAGS_run_mode, FLAGS_log_file, FLAGS_log_level);
    auto client = std::make_shared<zhong::rabbitmq::MQClient>(FLAGS_user, FLAGS_password, FLAGS_host);
    client->declareComponents("test-exchange", "queue-1");

    for (int i = 0; i < 10; i++)
    {
        std::string message = "hello-";
        message += std::to_string(i);
        client->publish("test-exchange", message);
    }
    // 需要阻塞运行否则会异步过程中主线程先退出了！！！导致异步线程无法完成工作
    std::this_thread::sleep_for(std::chrono::seconds(2));
}